The disclosure relates to interacting with software applications. More particularly, the methods and systems described herein relate to functionality for improving data entry into a user interface of a software application.
Conventionally, on-screen keyboards—also referred to as virtual keyboards—include a user interface in which letters of an alphabet (and other characters, such as punctuation and spaces) are presented on the screen and a user taps each letter or other character that she wants to type (e.g., type into an application displaying the on-screen keyboard). In some cases, the keyboard may offer a word prediction feature whereby possible words are presented in a dedicated location on the screen as the user types; tapping one of these words inserts the word. Alternatively, the keyboard may present a prediction for the current word, which may be accepted and entered by tapping the space key or another key. Existing on-screen keyboards also often provide an auto-correction feature, which attempts to replace words that have been mistyped with their correct substitutes.
Such conventional keyboards typically suffer from several shortcomings: most notably, it is hard to type on them accurately because of the size of the screen and the lack of physical contour and tactile feedback to help users place their fingers correctly. While auto-correction sometimes helps reduce errors, at other times it introduces additional errors.
Word prediction provides shortcuts that can help reduce errors and speed text entry, but conventional implementations are typically inconvenient, requiring that the user divert their attention from the typing process and move their eyes to a separate portion of the screen to scan for words, followed by a potential movement of the finger away from the main keyboard area to select the desired word. These steps typically interfere with efficient motor planning, complicating and slowing the writing process.
The combined result of the above-mentioned shortcomings is that the process of typing by tapping on touch screen devices is slow, error-prone, and generally not a source of enjoyment.
Recently, several swiping keyboards have become available (e.g., Swiftkey, Swype). With these keyboards, in addition to (or instead of) tapping on individual letters, a user can drag his finger from one letter to the next to spell a word; using a variety of heuristics, the swiping keyboards attempt to insert the word the user intends to type. Swiping keyboards also typically offer word prediction and auto-correction features. Swiping keyboards provide a satisfactory substitute for some people, however, many people find them unintuitive and difficult to use accurately.
The shortcomings of conventional on-screen keyboards are exacerbated for people with movement disorders. These include disorders that cause tremors such as Parkinson's disease and essential tremor; disorders that inhibit motor control such as multiple sclerosis, muscular dystrophy, and cerebral palsy; and cognitive disorders that make accurate movement difficult such as some forms of Down syndrome and some forms of autism spectrum disorder. For these people it is difficult or impossible to place a finger or other pointing device on the screen accurately enough to type. In addition, people with cognitive disabilities may benefit from the ability to make a tentative key selection and then receive feedback before committing to the selected key.